package retail.dao;

import java.util.List;

import HibernateBeans.CustomerDetails;
import HibernateBeans.Customer_Products;
import HibernateBeans.Invoice;
import HibernateBeans.ProductDetails;
import HibernateBeans.RepDetails;
import HibernateBeans.Users;
public interface CustomerDao {

	boolean addCustomer(CustomerDetails customer);
	CustomerDetails getCustomer(String username);
	CustomerDetails getUser(String uid);
	List<CustomerDetails> findAllCustomer();
	List<ProductDetails> getProducts(String userID);
	List<ProductDetails> getAllProducts();
	List<ProductDetails> getUpgrades(ProductDetails product);
	ProductDetails getProduct(String pid);
	boolean upgrade(String username, ProductDetails product);
	Invoice getCurrentInvoice(String userID);
	String getNextCustomerID();
	boolean payBills(Invoice invoice, double amount);
	boolean registerUser(String userID, Users user);
	boolean resetPassword(Users user);
	boolean removeProduct(String username, String pid);
	int countUser(String uname,String userid);
	public String getSecurityQuestion(String username);
	public boolean checkSecurityAnswer(String uid,String answer,String fname, String lname,String password);
	public boolean checkDetailsRep(String uid,String fname,String lname, String email,String password);
}